import shutil

# 1.拷贝文件
shutil.copyfile("1.txt", "2.txt")  # 拷贝 文件名,文件内容
shutil.copymode("1.txt", "2.txt")  # 拷贝 chmode 权限
shutil.copystat("1.txt", "2.txt")  # 拷贝 chmod , atime,ctime,mtime
shutil.copy("1.txt", "2.txt")       # cp 1.txt 21.txt, 拷贝文件, 目录, chmod
# shutil.copy('dir','dir2')         # 拷贝 目录报错
shutil.copy2("1.txt", "2.txt")      # cp -r 1.txt 21.txt, 拷贝文件, 目录, chmod, stat


# 2.拷贝文件到目录
shutil.copy("1.txt", "bak")     # bak/1.txt
shutil.copy("1.txt", "bak/")    # bak/1.txt

# 3.拷贝目录
shutil.copytree("dir", "dir2")  # 拷贝目录 cp -r dir dir2 ;  1.link拷贝为源文件
shutil.copytree("dir", "dir3", symlinks=True)  # 拷贝目录
shutil.copytree("dir", "dir3", dirs_exist_ok=True)  # cp -rf dir dir2 强制覆盖
#Bug shutil.copytree("dir", "dir3",  dirs_exist_ok=True, symlinks=True) # 依然会提示错误

# 4.删除目录
shutil.rmtree('dir3')

# 5.移动
shutil.move('dir2','dir22')

shutil.disk_usage('/home')
# usage(total=1081101176832, used=124644270080, free=901464551424)

shutil.chown('1.txt','1001','1001')     # 不存在的 user:group , 错误